﻿// GeneratorOptions
// (c)2008 Mark Bulmahn. mBulmahn@web.de
// License: GPL 2.0
// Project: TestCaseGenerator. http://www.codeplex.com/TestCaseGenerator

using System;
using System.Collections.Generic;
using System.Text;

namespace TestCaseModel
{
    /// <summary>
    /// This class encapsulates all options for test case generation
    /// at runtime
    /// </summary>
    [Serializable]
    public class GeneratorOptions
    {
        public delegate void PropertyChangedEventHandler();
        public event PropertyChangedEventHandler PropertyChanged;

        GlobalSettings.TcGenerator generatorType = GlobalSettings.TcGenerator.SIMPLE;

        public GlobalSettings.TcGenerator GeneratorType
        {
            get { return generatorType; }
            set { generatorType = value; if (PropertyChanged != null) PropertyChanged(); }
        }

        int combinationDepth = 0;

        public int CombinationDepth
        {
            get { return combinationDepth; }
            set { combinationDepth = value; if (PropertyChanged != null) PropertyChanged(); }
        }

        bool applyRules = true;

        public bool ApplyRules
        {
            get { return applyRules; }
            set { applyRules = value; if (PropertyChanged != null) PropertyChanged(); }
        }

        bool applyNullConditions = true;

        public bool ApplyNullConditions
        {
            get { return applyNullConditions; }
            set { applyNullConditions = value; if (PropertyChanged != null) PropertyChanged(); }
        }

        bool tryToMergeWithEditedResults = false;

        public bool TryToMergeWithEditedResults
        {
            get { return tryToMergeWithEditedResults; }
            set { tryToMergeWithEditedResults = value; if (PropertyChanged != null) PropertyChanged(); }
        }

        bool generateWithExampleData = false;

        public bool GenerateWithExampleData
        {
            get { return generateWithExampleData; }
            set { generateWithExampleData = value; if (PropertyChanged != null) PropertyChanged(); }
        }
    }
}
